/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modele.combinaison;

import java.util.Map;

/**
 * Classe PetiteSuite : Représente une suite de 4 dés successifs
 * @author Khémon Beh & Florian Minin
 */
public class PetiteSuite extends Suite {

    public final static String COMBINAISON_PETITE_SUITE = "Petite Suite";
    final static int SCORE_PETITE_SUITE = 20;

    public PetiteSuite() {
        super();
    }

    public PetiteSuite(Map<Integer, Integer> mapDonnees) {
        tabDonnees = new Integer[6];
        super.recupereValeurDes(mapDonnees);
    }

    public int calculeScoreCombinaison() {
        int nbDeux = 0;

        //La suite est possible si il n'y a aucune valeur qui apparait plus de
        //3 fois et qu'un seul dé est séléctionné au plus deux fois.
        for (int i = 0; i < 6; i++) {
            if (tabDonnees[i] >= 3) {
                return 0;
            }
            if (tabDonnees[i] == 2) {
                nbDeux++;
                if (nbDeux == 2) {
                    return 0;
                }
            }
        }

        //On vérifie maintenant si il y a 4 dés qui forment une suite.
        for (int i = 0; i < 3; i++) {
            if (tabDonnees[i] >= 1 && tabDonnees[i + 1] >= 1
                    && tabDonnees[i + 2] >= 1 && tabDonnees[i + 3] >= 1) {
                return SCORE_PETITE_SUITE;
            }
        }

        return 0;
    }

    /**
     * Retourne le type de la combinaison
     * @return <tt>String</tt> correspondant a la combinaison
     */
    public String getNomCombinaison() {
        return COMBINAISON_PETITE_SUITE;
    }

    @Override
    public int getLongueurSuite() {
        return 4;
    }
}
